.TH "EFIBOOTMGR" "8" "28 September 2021" "" ""

.SH NAME
efibootmgr \- change the UEFI Boot Manager configuration
.SH SYNOPSIS

\fBefibootmgr\fR [ \fB-a\fR ] [ \fB-A\fR ] [ \fB-b \fIXXXX\fB\fR ] [ \fB-B\fR ] [ \fB-c\fR ] [ \fB-d \fIDISK\fB\fR ] [ \fB-D\fR ] [ \fB-e \fI1|3|-1\fB\fR ] [ \fB-E \fINUM\fB\fR ] [ \fB--full-dev-path\fR | \fB--file-dev-path\fR ] [ \fB-f\fR ] [ \fB-F\fR ] [ \fB-g\fR ] [ \fB-i \fINAME\fB\fR ] [ \fB-l \fINAME\fB\fR ] [ \fB-L \fILABEL\fB\fR ] [ \fB-m \fIt|f\fB\fR ] [ \fB-M \fIX\fB\fR ] [ \fB-n \fIXXXX\fB\fR ] [ \fB-N\fR ] [ \fB-o \fIXXXX\fB,\fIYYYY\fB,\fIZZZZ\fB\fR\fI ...\fR ] [ \fB-O\fR ] [ \fB-p \fIPART\fB\fR ] [ \fB-q\fR ] [ \fB-r\fR | \fB-y\fR ] [ \fB-t \fIseconds\fB\fR ] [ \fB-T\fR ] [ \fB-u\fR ] [ \fB-v\fR ] [ \fB-V\fR ] [ \fB-w\fR ] [ \fB-@ \fIfile\fB\fR ]

.SH "DESCRIPTION"
.PP
\fBefibootmgr\fR is a userspace application used to modify the UEFI Boot
Manager. This application can create and destroy boot entries, change the boot
order, change the next running boot option, and more.
.PP
Details on the UEFI Boot Manager are available from the UEFI
Specification, v1.02 or later, available from: http://www.uefi.org
.sp
.RS
.B "Note:"
efibootmgr requires that the kernel support access to EFI
non-volatile variables through
\fI/sys/firmware/efi/vars\fR or \fI/sys/firmware/efi/efivars/\fR.
.RE
.SH "OPTIONS"
.PP
The following is a list of options accepted by efibootmgr:
.TP
\fB-a | --active\fR
Set bootnum active.
.TP
\fB-A | --inactive\fR
Set bootnum inactive.
.TP
\fB-b | --bootnum \fIXXXX\fB\fR
Modify Boot\fIXXXX\fR (hex).
.TP
\fB-B | --delete-bootnum\fR
Delete bootnum.
.TP
\fB-c | --create\fR
Create new variable bootnum and add to bootorder.
.TP
\fB-C | --create-only\fR
Create new variable bootnum and and do not add to bootorder.
.TP
\fB-d | --disk \fIDISK\fB\fR
The disk containing the loader (defaults to
\fI/dev/sda\fR).
.TP
\fB-D | --remove-dups\fR
Remove duplicated entries from BootOrder.
.TP
\fB-e | --edd \fI1|3\fB\fR
Force EDD 1.0 or 3.0 creation variables.

Use \fB-e 1\fR together with \fB-E\fR if you are using a very old system which
uses UEFI to boot, but requires legacy CSM (BIOS) device drivers for storage
devices.

\fB-e 3\fR is now deprecated, and is an alias for \fB--full-dev-path\fR.
.TP
\fB-E | --edd-device \fINUM\fB\fR
EDD 1.0 device number (defaults to 0x80).  See \fB--edd\fR.
.TP
\fB--full-dev-path\fR
Force creation of boot entries use a full UEFI device path, starting at the
PCIe root or equivalent on the current platform.  The default is to use a hard
disk based HD() abbreviated path.

You shouldn't need to use this option unless the system firmware won't boot off
of your device using an abbreviated HD() device path.

Note that forcing a full path will fail if we don't know what the system device
root is, how the specified device is connected to it, or how to encode any one
of those.
.TP
\fB--file-dev-path\fR
Force creation of boot entries use an abbreviated UEFI device path which starts
with the File() portion of the path.  The default is to use a hard disk based
HD() abbreviated path.
.TP
\fB-f | --reconnect \fR
Re-connect devices after driver is loaded.  Only applicable for driver entries.
.TP
\fB-F | --do-not-reconnect \fR
Do not reconnect devices after driver is loaded.  Only applicable for driver entries.
.TP
\fB-g | --gpt\fR
Force disk with invalid PMBR to be treated as GPT.
.TP
\fB-i | --iface \fINAME\fB\fR
Create a netboot entry for the named interface.
.TP
\fB-k | --keep \fINAME\fB\fR
Keep old entries when adjusting order.
.TP
\fB-l | --loader \fINAME\fB\fR
Specify a loader (defaults to \fI@@DEFAULT_LOADER@@\fR).
.TP
\fB-L | --label \fILABEL\fB\fR
Boot manager display label (defaults to "Linux").
.TP
\fB-m | --mirror-below-4G \fIt|f\fB\fR
Set t if you want to mirror memory below 4GB.
.TP
\fB-M | --mirror-above-4G \fIX\fB\fR
X percentage memory to mirror above 4GB.  Floating-point value with up to 2 decimal places is accepted.
.TP
\fB-n | --bootnext \fIXXXX\fB\fR
Set BootNext to XXXX (hex).
.TP
\fB-N | --delete-bootnext\fR
Delete BootNext.
.TP
\fB-o | --bootorder \fIXXXX\fB,\fIYYYY\fB,\fIZZZZ\fB\fR
Explicitly set BootOrder (hex).  Any value from 0 to FFFF is accepted so long as it corresponds to an existing Boot#### variable, and zero padding is not required.
.TP
\fB-O | --delete-bootorder\fR
Delete BootOrder.
.TP
\fB-p | --part \fIPART\fB\fR
Partition number containing the bootloader (defaults to 1).
.TP
\fB-q | --quiet\fR
Quiet mode - suppresses output.
.TP
\fB-r | --driver\fR
Operate on Driver#### variables instead of Boot#### variables.
.TP
\fB-t | --timeout \fIseconds\fB\fR
Boot Manager timeout, in \fIseconds\fR\&.
.TP
\fB-T | --delete-timeout\fR
Delete Timeout variable.
.TP
\fB-u | --unicode | --UCS-2 \fR
Handle extra command line arguments as UCS-2 (default is
ASCII).
.TP
\fB-v | --verbose\fR
Verbose mode - prints additional information.
.TP
\fB-V | --version\fR
Just print version string and exit.
.TP
\fB-w | --write-signature\fR
Write unique signature to the MBR if needed.
.TP
\fB-y | --sysprep\fR
Operate on SysPrep#### variables instead of Boot#### variables.
.TP
\fB-@ | --append-binary-args \fR
Append extra variable args from file (use - to read
from stdin).  Data in file is appended as command line
arguments to the boot loader command, with no modification to
the data, so you can pass any binary or text data necessary.
.SH "EXAMPLES"
\fR
.SS "Displaying the current settings (must be root):"
\fR
.nf
.B
[root@localhost ~]# efibootmgr
BootCurrent: 0004
BootNext: 0003
BootOrder: 0004,0000,0001,0002,0003
Timeout: 30 seconds
Boot0000* Diskette Drive(device:0)
Boot0001* CD-ROM Drive(device:FF)
Boot0002* Hard Drive(Device:80)/HD(Part1,Sig00112233)
Boot0003* PXE Boot: MAC(00D0B7C15D91)
Boot0004* Linux
.fi
.PP
Each of the above are boot variables, which are defined as follows:
.RS
.TP 0.2i
\(bu
BootCurrent - the boot entry used to start the currently
running system
.TP 0.2i
\(bu
BootOrder - the boot order as would appear in the boot manager.
The boot manager tries to boot the first active entry in this
list.  If unsuccessful, it tries the next entry, and so on.
.TP 0.2i
\(bu
BootNext - the boot entry which is scheduled to be run on next
boot.  This supersedes BootOrder for one boot only, and is
deleted by the boot manager after first use.  This allows you
to change the next boot behavior without changing BootOrder.
.TP 0.2i
\(bu
Timeout - the time in seconds between when the boot
manager appears on the screen until when it
automatically chooses the startup value from BootNext
or BootOrder.
.TP 0.2i
\(bu
Five boot entries (0000 - 0004), along with the active/inactive
flag (* means active) and the name displayed on the screen.
.RE
.SS "Creating a new boot option"
An OS installer would call \fBefibootmgr -c\fR\&.
This assumes that \fI/dev/sda1\fR is your EFI System
Partition, and is mounted at \fI/boot/efi\fR\&.  This
creates a new boot option, called "Linux", and puts it at the top of
the boot order list.  Options may be passed to modify the default
behavior.  The default OS Loader is \fI@@DEFAULT_LOADER@@\fR\&.
.SS "Changing the boot order"
Assuming the configuration in the first example,
\fBefibootmgr -o 3,4\fR could be called to specify
PXE boot first, then Linux boot.
.SS "Changing the boot order for the next boot only"
Assuming the configuration in the first example,
\fBefibootmgr -n 4\fR could be called to specify
that the Linux entry be taken on next boot.
.SS "Deleting a boot option"
Assuming the configuration in the first example,
\fBefibootmgr -b 4 -B\fR could be called to delete
entry 4 and remove it from the BootOrder.
.SS "Creating network boot entries"
A system administrator wants to create a boot option to network
boot.  You create the boot entry with:
\fBefibootmgr -c -i eth0 -L netboot [ -l '\\filename.efi' ]\fR
.SH "BUGS"
.PP
Please direct any bugs, features, patches, etc. to the Red Hat bootloader team at https://github.com/rhboot/efibootmgr \&.
.SH "AUTHOR"
.PP
This man page was generated by dann frazier <dannf@debian.org> for the
Debian GNU/Linux operating system and updated by Robert Bisewski
<contact@ibiscybernetics.com>, but may be used by others.
.PP
It has subsequently been modified by Robbie Harwood <rharwood@redhat.com> for
the efibootmgr project.
